1. Field of Invention
Embodiments of the present invention generally relate to techniques for encoding a video file in parallel, based on a complexity analysis.
2. Description of Related Art
Digital video content is very popular today, with numerous websites and services offering various types of video content for download or streaming. Such video content ranges from movies, sports and news, to home video clips, personal video blogs and the full range of content in between. While some content is available for free, video content is often associated with some cost, with pricing plans ranging from a per-viewing charge to a monthly subscription fee. Additionally, consumer electronic devices may also be configured for streaming digital video content. For example, many personal and tablet computers, Blu-Ray players, cable boxes and even certain mobile telephone phones are capable of downloading and streaming video content today.
Typically, a content distribution system may include access servers, content servers, etc., which clients connect to using a content player, such as a gaming console, computing system, computing tablet, mobile telephone, network-aware DVD players, etc. The content server stores files (or “streams”) available for download from the content server to the content player. Each stream may provide a digital version of a movie, a television program, a sporting event, user generated content, a staged or live event captured by recorded video, etc. Users may then access the service by connecting to a web server, where a list of content is available. Once a request for a particular title is received, it may be streamed to the client system over a connection to an available content server.
Because content servers often stream content to a variety of devices with different processing capabilities and display resolutions, the content servers will often store various streams of different qualities for a single video, each referred to as an encoding. However, encoding each of these different streams can take a substantial amount of time. As such, for content servers who provide streams for a substantial number of different devices, it can be difficult for content servers to quickly release streaming content within a short period of time. This is particularly problematic for limited release content, which is made available to a streaming service provider for a specified window of time.
Furthermore, although performance may be increased by encoding various portions of a source video separately and in parallel, such a solution may produce a lower quality encoding, as the individual encoders account for complexity only within a portion of the source video, rather than across the source video as a whole. For example, the most complex frames of a particular portion of the source video may be relatively simple in the context of the source video as a whole. However, because an individual encoder operating only on a portion of the source video cannot determine that, the encoder may produce a lower-quality encoding.